// Learn TypeScript:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html

import {KILL_SCORE} from "../config/config";
import Hero from "../hero";
import {GameVar, GlobalObject} from "./GameVar";
import UpdateController from "../frame/UpdateController";

const {ccclass, property} = cc._decorator;

@ccclass
export default class Portal extends cc.Component {

  @property(UpdateController)
  private updateController: UpdateController = null;

  onLoad() {
  }

  onCollisionEnter(other: cc.BoxCollider, self: cc.BoxCollider) {
    const hero = other.getComponent(Hero);
    hero.randomPos();
    hero.immortal = true;
    this.updateController.removeAllTickFunc(hero);
    if (hero === GameVar.myHero) {
      GlobalObject.voiceSource.playWhirlpool();
    }

    this.updateController.addTickFunc(() => {
      hero.immortal = false;
    }, 100, hero)
  }
}